﻿using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Model
{
    [Table("DurableSpec")]
    public class DurableSpec
    {
        private int _durableSpecId;
        private string _specificationDescription;
        private string _type;
        private string _detailedType;
        private string _color;
        private int _maxUsageCount;
        private int _maxUsageDays;
        private int _maxUsageCountAfterCleaning;
        private int _maxUsageDaysAfterCleaning;
        private int _maxCleaningCount;

        // 耐用品规格 ID（主键）
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int DurableSpecId
        {
            set { _durableSpecId = value; }
            get { return _durableSpecId; }
        }

        // 规格说明（可空）
        public string SpecificationDescription
        {
            set { _specificationDescription = value; }
            get { return _specificationDescription; }
        }

        // 类型（非空）
        [Required]
        [StringLength(255)]
        public string Type
        {
            set { _type = value; }
            get { return _type; }
        }

        // 详细类型（非空）
        [Required]
        [StringLength(255)]
        public string DetailedType
        {
            set { _detailedType = value; }
            get { return _detailedType; }
        }

        // 颜色（非空）
        [Required]
        [StringLength(50)]
        public string Color
        {
            set { _color = value; }
            get { return _color; }
        }

        // 最大使用次数（非空）
        [Required]
        public int MaxUsageCount
        {
            set { _maxUsageCount = value; }
            get { return _maxUsageCount; }
        }

        // 最大使用天数（非空）
        [Required]
        public int MaxUsageDays
        {
            set { _maxUsageDays = value; }
            get { return _maxUsageDays; }
        }

        // 清洗后最大使用次数（非空）
        [Required]
        public int MaxUsageCountAfterCleaning
        {
            set { _maxUsageCountAfterCleaning = value; }
            get { return _maxUsageCountAfterCleaning; }
        }

        // 清洗后最大使用天数（非空）
        [Required]
        public int MaxUsageDaysAfterCleaning
        {
            set { _maxUsageDaysAfterCleaning = value; }
            get { return _maxUsageDaysAfterCleaning; }
        }

        // 最大清洗次数（非空）
        [Required]
        public int MaxCleaningCount
        {
            set { _maxCleaningCount = value; }
            get { return _maxCleaningCount; }
        }

        // 构造函数
        public DurableSpec()
        {
            // 可以在构造函数中初始化一些默认值
        }
    }
}